SpringBoot整合分页插件PageHelper |
您所在的位置:网站首页 › java pagehelper 原理 › SpringBoot整合分页插件PageHelper |
在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结。官方使用说明 方式一:使用原生的PageHelper 1.在pom.xml中引入依赖 com.github.pagehelper pagehelper 4.1.32.在项目里面添加配置 @Configuration public class MybatisConfig { @Bean public PageHelper pageHelper() { PageHelper pageHelper = new PageHelper(); Properties p = new Properties(); p.setProperty("dialect", "Mysql"); p.setProperty("offsetAsPageNum", "true"); p.setProperty("rowBoundsWithCount", "true"); pageHelper.setProperties(p); return pageHelper; } }方式二:使用PageHelper的starter 1.在pom.xml中引入依赖 com.github.pagehelper pagehelper-spring-boot-starter 1.2.102.在application.properties或者application.yml格式配置pagehelper的属性 application.properties #pagehelper分页插件配置 pagehelper.helper-dialect=mysql pagehelper.reasonable=true pagehelper.support-methods-arguments=true pagehelper.params=count=countSql application.yml pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true最后使用: 直接在controller层分页方法中使用 public PageInfo getPageById(@RequestParam("sectionId") String sectionId, @RequestParam("pageNum" Integer pageNum,@RequestParam("pageSize" Integer pageSize)) { PageInfo info= PageHelper.orderBy(xxx ASC/DESC).startPage(pageNum, pageSize).doSelectPage(() -> { this.xxxService.getPagedBySectionId(sectionId); }); return info; }其他调用方式参考: 第一种、RowBounds方式的调用 List list = sqlSession.selectList("x.y.selectIf", null, new RowBounds(0, 10));
第二种、Mapper接口方式的调用,推荐这种使用方式。 PageHelper.startPage(1, 10); List list = countryMapper.selectIf(1);
第三种、Mapper接口方式的调用,推荐这种使用方式。 PageHelper.offsetPage(1, 10); List list = countryMapper.selectIf(1);
第四种、参数方法调用 存在以下 Mapper 接口方法,你不需要在 xml 处理后两个参数 public interface CountryMapper { List selectByPageNumSize( @Param("user") User user, @Param("pageNum") int pageNum, @Param("pageSize") int pageSize); } //配置supportMethodsArguments=true //在代码中直接调用: List list = countryMapper.selectByPageNumSize(user, 1, 10);
//第五种、参数对象 //如果 pageNum 和 pageSize 存在于 User 对象中,只要参数有值,也会被分页 //有如下 User 对象 public class User { //其他fields //下面两个参数名和 params 配置的名字一致 private Integer pageNum; private Integer pageSize; }//存在以下 Mapper 接口方法,你不需要在 xml 处理后两个参数 public interface CountryMapper { List selectByPageNumSize(User user); }//当 user 中的 pageNum!= null && pageSize!= null 时,会自动分页 List list = countryMapper.selectByPageNumSize(user);
//第六种、ISelect 接口方式 //jdk6,7用法,创建接口 Page page = PageHelper.startPage(1, 10).doSelectPage(new ISelect() { @Override public void doSelect() { countryMapper.selectGroupBy(); } });jdk8 lambda用法 Page page = PageHelper.startPage(1, 10).doSelectPage(()-> countryMapper.selectGroupBy()); //也可以直接返回PageInfo,注意doSelectPageInfo方法和doSelectPage pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(new ISelect() { @Override public void doSelect() { countryMapper.selectGroupBy(); } });对应的lambda用法 pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> countryMapper.selectGroupBy()); //count查询,返回一个查询语句的count数 long total = PageHelper.count(new ISelect() { @Override public void doSelect() { countryMapper.selectLike(country); } }); //lambda total = PageHelper.count(()->countryMapper.selectLike(country));参考:https://blog.csdn.net/csdn_huzeliang/article/details/79350425 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |